package com.liangtian.mdm.system.business.service;

import com.liangtian.mdm.system.business.model.SysBusiness;
import com.github.pagehelper.PageInfo;

import java.util.List;
import java.util.Map;

public interface SysBusinessService {


    /**
     * 菜单树查询
     *
     * @param menu
     * @return
     */
    public List<SysBusiness> sysBusTree(SysBusiness sysBusiness);

    public List<SysBusiness> sysBusTreeForWk(SysBusiness sysBusiness);

    public List<SysBusiness> sysBusTreeForButton(SysBusiness sysBusiness);

    public List<SysBusiness> sysBusTreeForView(SysBusiness sysBusiness);

    /**
     * 左侧列表查询
     *
     * @param menu
     * @return
     */
    @SuppressWarnings("rawtypes")
    public PageInfo queryBusByContion(SysBusiness sysBusiness);

    /**
     * 前台插入菜单
     *
     * @param menu
     */
    public void insertBusiness(SysBusiness sysBusiness);

    /**
     * 根据id查询
     *
     * @param sysBusiness
     * @return
     */
    public SysBusiness queryBusById(SysBusiness sysBusiness);

    /**
     * * <p>Title:  业务类型删除功能</p>
     * <p>Description: TODO </p>
     * <p>Company:@param ids
     * <p>Company:@return </p>
     *
     * @author : xiaoliu
     * @date :2016年10月13日下午4:32:10
     */
    public int deleteBus(Map<String, Object> map);

    /**
     * * <p>Title: 校验业务类型名称</p>
     * <p>Description: TODO </p>
     * <p>Company:@param sysBusiness
     * <p>Company:@return </p>
     *
     * @author : xiaoliu
     * @date :2016年10月17日下午12:58:04
     */
    public int checkBusName(String busName);

    /**
     * * <p>Title: 校验业务类型</p>
     * <p>Description: TODO </p>
     * <p>Company:@param sysBusiness
     * <p>Company:@return </p>
     *
     * @author : xiaoliu
     * @date :2016年10月17日下午12:58:04
     */
    public int checkBusTableName(String busTableName, String dataType);

    /**
     * * <p>Title: 校验是不是根节点</p>
     * <p>Description: TODO </p>
     * <p>Company:@param busId
     * <p>Company:@return </p>
     *
     * @author : xiaoliu
     * @date :2016年10月17日下午1:32:58
     */
    public int checkBusNode(String busId);

    /**
     * * <p>Title: 编辑时的校验</p>
     * <p>Description: TODO </p>
     * <p>Company:@param sysBusiness
     * <p>Company:@return </p>
     *
     * @author : xiaoliu
     * @date :2016年10月17日下午4:03:43
     */
    public int checkBusNameTwo(SysBusiness sysBusiness);

    /**
     * * <p>Title: 编辑时的校验</p>
     * <p>Description: TODO </p>
     * <p>Company:@param sysBusiness
     * <p>Company:@return </p>
     *
     * @author : xiaoliu
     * @date :2016年10月17日下午4:03:43
     */
    public int checkBusTableNameTwo(SysBusiness sysBusiness);

    /**
     * * <p>Title: 业务类型编辑方法</p>
     * <p>Description: TODO </p>
     * <p>Company:@param sysBusiness </p>
     *
     * @author : xiaoliu
     * @date :2016年10月17日下午4:57:58
     */
    void updateBus(SysBusiness sysBusiness);

    List<Map<String, Object>> queryDataTables(List<String> Lst);

    /*
     * 查询含有编码属性的业务类型树
     * */
    public List<SysBusiness> queryCodeSysBusTree(Map<String, Object> param);

    PageInfo queryBusByContion2(SysBusiness sysBusiness);
}
